// создание карты по матрице и представление её в виде изображения для сохранения
var obj = Array("./images/Ocean.png", "./images/Hills.png", "./images/Mountains.png");  // массив ресурсов полей, по кот. нельзя ходить
var elem_map = Array("./images/Grassland.png","./images/Plains.png","./images/Desert.png",
        "./images/Jungle.png", "./images/Swamp.png");  // массив ресурсов матрицы карты
var elem_img = new Array();     // массив изображений элементов карты матрицы 1
var obj_img = new Array();      // массив изображений объектов карты матрицы 2
var loaded = 0;     // индикатор загрузки ресурсов
var load_time;      // время ожидания загрузки ресурсов
var x_map = 251.5, y_map = 0;   // нач. координаты прорисовки карты
var cell_height = 12.5, cell_width = 6.25;  // размеры ячейки карты
var CanvasName = "canvas";
var canvas, ctx;

function load_Image() {
    // загрузка изображений
    for (var i = 0; i < elem_map.length; i++) {
        elem_img[i] = new Image();
        elem_img[i].src = elem_map[i];
        elem_img[i].onload = function () {
            loaded++;
        }
    }
    for (var r = 0; r < obj.length; r++) {
        obj_img[r] = new Image();
        obj_img[r].src = obj[r];
        obj_img[r].onload = function () {
            loaded++;
        }
    }
}

function load_All() {
    // проверка загрузки ресурсов
    if (loaded == elem_map.length + obj.length) {
        clearInterval(load_time);
        Draw_Map();
    }
}

function Draw_Map() {
    // прорисовка карты (1-ый слой)
    var x_pos, y_pos;   // координаты ячейки, кот. прорисовывается
    for (var i = 0; i < Map_matrix.length; i++) {
        for (var j = 0; j < Map_matrix[i].length; j++) {
            var draw_cell = Map_matrix[i][j];
            x_pos = (i - j) * cell_height + x_map;
            y_pos = (i + j) * cell_width + y_map;
            // прорисовка клетки карты;
            switch(draw_cell) {
                case 0: ctx.drawImage(elem_img[draw_cell], x_pos, y_pos, 25, 12.5); break;
                case 1: ctx.drawImage(elem_img[draw_cell], x_pos, y_pos, 25, 12.5); break;
                case 2: ctx.drawImage(elem_img[draw_cell], x_pos, y_pos, 25, 12.5); break;
                case 3: ctx.drawImage(elem_img[draw_cell], x_pos, y_pos, 25, 12.5); break;
                case 4: ctx.drawImage(elem_img[draw_cell], x_pos, y_pos, 25, 12.5); break;
                case 5: ctx.drawImage(obj_img[0], x_pos, y_pos, 25, 12.5); break;
                case 6: ctx.drawImage(obj_img[1], x_pos, y_pos, 25, 12.5); break;
                case 7: ctx.drawImage(obj_img[2], x_pos, y_pos, 25, 12.5); break;
            }
        }
    }
    // представление холста как изображения для сохранения
    window.location = ctx.canvas.toDataURL("image/png");
}

function init(){
    canvas = document.getElementById("canvas");
	ctx = canvas.getContext("2d");
	load_Image();   // загрузка изображений  
    load_time = setInterval(load_All, 100);
}